home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / me_cd22.zip / DOC.ZIP / ME2.DOC < prev    next >
Text File  |  1992-04-27  |  48KB  |  1,036 lines

  1. ========================================================================
  2. ==        ME2 Documentation        Craig Durland  8/88 10/91 ==
  3. ========================================================================
  4.  
  5.   ME2 is a medium-small, portable, extendable Emacs like editor.  This
  6. document describes how individual commands work - it is light on general
  7. usage.  If you need to learn Emacs, look at the GNU, Goslings or
  8. Unipress Emacs manuals.
  9.  
  10.  
  11.              Copyright 1991 Craig Durland
  12.     Distributed under the terms of the GNU General Public License.
  13.   Distributed "as is", without warranties of any kind, but comments,
  14.            suggestions and bug reports are welcome.
  15.  
  16. ========================================================================
  17. ==        Soft keys and Function keys                           ==
  18. ========================================================================
  19.  
  20.   When describing characters or keys, the character itself is used if it
  21. is printable.  Unprintable characters are made printable using 3 or more
  22. printable characters.  For example, the letter "A" is printable but
  23. control-A is not and so the code "C-a" is used to describe it.  The
  24. table below shows the various codes needed to map the unprintable keys.
  25.  
  26. Prefix    Meaning
  27.   C-    Control key.
  28.   F-    Function or soft key such as f1, Home, etc.
  29.   M-    Meta key.  See META in the GLOSSARY.
  30.   S-    Shift.  This only applies to function keys.
  31.  
  32.    This is a list of  "extended"  keys - those not covered by ASCII.  ME
  33. maps  these keys to 3 or more  ASCII  codes.  Ignore  the ME key  column
  34. unless  you are  binding  keys.  The  keyboard  column is the key on the
  35. keyboard you press to generate the ME key which (unless  rebound)  fires
  36. off the function listed in the Bound to column.
  37.  
  38. keyboard      ME key    Bound to
  39.    F1        F-1
  40.    F2        F-2
  41.    F3        F-3
  42.    F4        F-4
  43.    F5        F-5
  44.    F6        F-6
  45.    F7        F-7
  46.    F8        F-8
  47.    F9        F-9
  48.    F10        F-0
  49.   home        F-A    (beginning-of-buffer)
  50.   end        F-B    (end-of-buffer)
  51.   up arrow    F-C    (previous-line)
  52.   down arrow    F-D    (next-line)
  53.   right arrow   F-E    (next-character)
  54.   left arrow    F-F    (previous-character)
  55.   insert    F-G
  56.   delete    F-H    (delete-character)
  57.   page up    F-I    (previous-page)
  58.   page down    F-J    (next-page)
  59.   clear line    F-K    (cut-line)
  60.   delete line    F-L
  61.   insert line    F-M
  62.   select    F-N    (set-mark)
  63.   roll up     F-O    (scroll-down)
  64.   roll down     F-P    (scroll-up)
  65.   DEL        C-?    (delete-character) (This is the DELete key)
  66.   ESC        C-[
  67.   shift tab    M-I
  68.  
  69.   ALT 0..9A..Z!    mapped to META 0..9A..Z!
  70.   Use the ALT key like the control key (ie hold it down while you press the
  71.     next key).
  72.  
  73. ========================================================================
  74. ========================================================================
  75.  
  76. Case of letters:
  77.   Meta keys and Control X commands: next letter is ALWAYS uppercase.
  78.   Function keys are case sensitive.
  79.  
  80. ========================================================================
  81. ==            GLOSSARY                      ==
  82. ========================================================================
  83. C-[  See META
  84. args
  85.   Parameters or arguments that will be requested by the command.  If
  86.    [] surround the arg, then it will only be requested in certain cases.
  87.  
  88. binding    See bound.
  89. bound
  90.   A key is attached or bound to a command or program.
  91.   If the key is pressed, whatever it is bound to is invoked.
  92.   Keys can be bound locally or globally.  If a key has a local  binding,
  93.     pressing  the key in the  buffer  it was bound in causes  action.  A
  94.     global  binding  covers all buffers.  Note that local  bindings take
  95.     precedence over global ones.
  96. buffer
  97.   A buffer is an internal workspace where changes are made to text.  If
  98.     a buffer is visible, it is shown through one or more windows.  It is
  99.     usually attached to a file (ie contains the contents of the file).
  100.     If the buffer was created by reading in a file, the buffer name is
  101.     created by removing the path from the file name (and leaving only
  102.     the name and extension).
  103.  
  104. clear
  105.   A operation where something is covered over by something else.  Also
  106.     reset.
  107.   For example:
  108.     If text is cleared, it is covered by blanks.
  109.     If a mark is cleared, it is reset to an initial state (pointing to
  110.       nothing).
  111.   See also:  cut, delete, clear.
  112. command or cmd
  113.   A ME built in command such as (read-file).
  114.   These can be bound to a key to make executing them easier.
  115.   Documented  under  COMMANDS  (in  ME2.DOC).  These are  different  from
  116.     functions  in  that  they  can be  bound  to  keys  or  executed  by
  117.     (ME-command).
  118. Command completion
  119.   ME will  attempt to complete a command if the space bar is pressed and
  120.     completion is on.  The only time you can use command  completion  is
  121.     when you are being queried in the  minibuffer.  For example, when ME
  122.     is requesting a buffer name for  (use-existing-buffer) and foobar is
  123.     a buffer,  typing  "foo" and hitting  space will fill in the rest of
  124.     the name.  ME also trys to fix typos.  If you had typed  "fooie" and
  125.     hit the space bar, you still get "foobar".  Sometimes,  you will hit
  126.     space and only part of the command  name will  appear.  This is ME's
  127.     way of  telling  you there is some  ambiguity  as to the full  name.
  128.     Type some more of the name and hit space  again or press ?  to get a
  129.     list of possible names.
  130.   See also: complete in ME2MUTT.DOC.
  131. cut
  132.   A operation where something is saved and then removed.
  133.   For example:  If text is cut, it is saved in the cut buffer and then
  134.     deleted.  You can retreive it later from the cut buffer.
  135.   See also:  cut buffer, delete, clear.
  136. Cut buffer
  137.   An invisible buffer that holds things created by deletion commands
  138.     such as (cut-region) and (copy-region).  Used to cut and paste, or
  139.     just cut, text.
  140.   If you want to move a block of text about:  1.  set the mark at one
  141.     end and then move the dot to the other end.  2.  cut the region.  3.
  142.     move the dot to the start of where you want the text to begin and 4.
  143.     yank the cut buffer.  Bingo.
  144.   Copy and cut append to the cut buffer if last command was also a cut
  145.     or copy, otherwise the cut buffer is cleared before the new text is
  146.     entered.
  147.   The cut buffer is also used by (filter).
  148.   Other Emacs' refer to this as the kill buffer.
  149.  
  150. delete
  151.   A operation where something is removed and NOT saved.
  152.   For example:  If text is deleted, it is gone and can't be recovered
  153.     (unless undo can be it back).
  154.   See also:  cut, clear.
  155. dot
  156.   The place between two  characters.  It is  immediately  to the left of
  157.     the cursor.  Also known as point.  One per window or buffer.
  158.  
  159. ESCAPE
  160.   See also META.
  161.   The escape key (usally marked ESC on keyboards) acts like the META key
  162.     for those keyboards that don't have a META key.
  163.  
  164. file
  165.    For MS-DOS, you can use forward slashes "/" as part of the path name.
  166. function or fcn
  167.   The commands that comprise the Mutt programming language.  Documented
  168.     in MUTT2.DOC and ME2MUTT.DOC.  These differ from commands in that
  169.     they cannot be bound to keys and cannot be executed by (ME-command).
  170.  
  171. help
  172.    Help is pretty much limited to reading manuals or asking gurus.
  173.    Limited  forms of online help are  command  completion  (see  above),
  174.      typing a ?  when  being  asked a  question  (see "If you are  being
  175.      asked a question" below), command completion and (describe-bindings).
  176.  
  177. keys
  178.   Keys are used to enter text and invoke commands.  The keys used to
  179.     invoke can be one or two keys where each key can have one or more
  180.     modifiers.
  181.     modifier meaning    notes
  182.        M-    META    See META and ESCAPE.  Cannot be prefixed.
  183.        C-    CONTROL    
  184.        S-    SHIFT    Only used with nonASCII keys
  185.        F-    FUNCTION    NonASCII keys
  186.   See also: prefix-key in ME2MUTT.DOC
  187.  
  188. macro
  189.   A sequence of  keystrokes  that can be replayed on command.  Used when
  190.     you don't  want to spend  the time  writing a  program.  Created  by
  191.     going through the motions (which are actually done so you can verify
  192.     that  what  you  want  to  happen  is   actually   happening)   (see
  193.     (start-macro)  and (end-macro)).  When replayed by  (execute-macro),
  194.     the exact sequence you typed in is replayed.
  195.  
  196. mark
  197.   A user settable dot.
  198.   A mark is remembered for the life of the buffer and stays where you
  199.     set it until you or ME moves it.  (exchange-dot-and-mark) will get
  200.     you to the mark from anywhere in the buffer.
  201.   If the dot is at a mark and you do something  (like  insert text, yank
  202.     text, etc), it is done  between  the dot and mark, that is, the mark
  203.     is before the change and the dot after.
  204.   Advanced  note:  The marks are  associated  with a buffer NOT with the
  205.     windows  attached  to the buffer.  Thus all  windows  attached  to a
  206.     buffer have the same marks.
  207. ME
  208. ME2
  209.   The Mutt Editor.  An editor that is extendable using the Mutt
  210.     programming langauge.  ME2 is the follow on to ME.
  211. message line or
  212. minibuffer
  213.   The bottom line of the screen.  This is the place where all questions
  214.     are asked, error messages sent, etc.
  215. META key
  216.   This is a modifier key that works like the control key.  Your keyboard
  217.     may or may not have  one.  On IBM PCs, this is the ALT key.  To use,
  218.     hold  down the META key and  press  the key you want to  modify.  If
  219.     your  keyboard does not have a META key, use ESCAPE  instead - press
  220.     the ESCAPE key, let it up and then press the key you want to modify.
  221.   In the ME documents, the META key will be refered to by M-x where x is
  222.     the key being modified.
  223. Mutt
  224.   The built in programming language.  Refer to the Mutt documentation in
  225.     MUTT2.DOC and ME2MUTT.DOC.
  226.  
  227. n nth
  228.   Argument prefix (set by  (universal-argument)).  This means repeat the
  229.     key   (or   what   its   bound   to)   or   command   n   times.  If
  230.     (universal-argument) is not used then n defaults to 1.
  231.  
  232. pgm    See program.
  233. point    See dot.
  234. program
  235.   A program created by (defun).
  236.   These are created by the user to make its editing easier.
  237.   See MUTT.DOC and ME2MUTT.DOC.
  238.  
  239. region
  240.   The area between two marks (usually the dot and the mark).
  241. rectangle
  242.   The rectangler region between two marks.  One mark is at the upper
  243.     left corner of the region and the other mark is at the lower right
  244.     corner.  The width is measured in characters and the height in lines.
  245.  
  246. syntax tables are used to determine word boundaries, etc.  All commands
  247.    work with words use these tables (eg (next-word).  Use
  248.    (modify-syntax-entry) to change what it means to be a word.
  249. sysvar or system variable
  250.    These are a collection of user changable variables that effect the way
  251.      ME does certain things.
  252.    Documented in ME2MUTT.DOC.
  253.  
  254. window
  255.   A portion of the screen.  A window provides a view of a buffer.  There
  256.     can be more than one window showing a buffer.  Windows are separated
  257.     from each by a mode line.  Mode lines look like:
  258.     -* ME2 -- buffer_name -- file_name -------------------------------
  259.     The  * is  present  only  if  the  buffer  has  been  modified.  The
  260.     file_name is present only if a file is associated with the buffer.
  261. word
  262.   A string of letters, digits, "$", "'" or "_".  By modifying the syntax
  263.     tables, you can change the definition of a word.
  264.   See syntax tables, (modify-syntax-entry).
  265. Word wrap
  266.   When you are typing at the end of a line and cross the fill column the
  267.     last  "word" is  wrapped  to the next  line.  If you have some  left
  268.     margin  you  wish  to  preserve,   bind  CR  to   newline-and-indent
  269.     (bind-to-key "newline-and-indent" "C-m").
  270.   Setting the system var  word-wrap  to 0 turns it off,  setting it to n
  271.     causes wrapping to occur at column n.
  272.  
  273. ========================================================================
  274. ==        If you are being asked a question              ==
  275. ========================================================================
  276. Key bindings are not in effect.  This means if a normal key has been bound
  277.   to something wrong by accident, you can unbind it without undo grief.
  278. "Special" keys:
  279.     C-h or Backspace    Delete character left of the cursor.
  280.     C-g     Abort out of the question.  Also causes the command to be aborted.
  281.     C-j     Same as C-m.
  282.     C-l  Redraw the screen.  Handy if you messed it up with help and want
  283.      to see the original contents.
  284.     C-m or return (enter)    End the question and return your answer.
  285.     C-q  Quote the next character.  C-qC-j is the code for the end of a
  286.      line - if you search for "C-qC-jstart of line" you will find
  287.      "start of line" if it is the first thing on a line.
  288.     C-^  Quote next key (same as C-q)
  289.  
  290.     ?    Show help (if available).  This shows the possible responses for
  291.      this command.  This is available whenever command completion is.
  292.     Space Command completion (if available for this command).  You can
  293.           customize this key.  See complete-key in ME2MUTT.DOC.
  294.  
  295.     C-f  Next character
  296.     C-b  Previous character
  297.     C-a  Begining of line
  298.     C-e  End of line
  299.  
  300.     C-u  Delete everything and start over.
  301.     C-d  Delete character
  302.     C-k  Delete to end of line
  303.  
  304.     M-f  Next word
  305.     M-b  Previous word
  306.  
  307.     C-p  Previous history
  308.     C-n  Next history
  309.     C-r  Search back though history
  310.     M->  Youngest history entry
  311.     M-<  Oldest history entry
  312.      
  313.   If you answer the question by hitting <return or enter> and the line is
  314.     empty, you have entered the null line zone.  This can be interpreted as:
  315.     1.  An empty line.  It will then be ignored or complained about or
  316.       stop the command.
  317.     2.  A C-m.  (bind-to-key) does this.
  318.     3.  A request to use the default.  This is usually the current
  319.       thing being manipulated (where thing is buffer, file, etc).
  320.       eg (write-file) defaults to current file name and
  321.       (delete-buffer) defaults to current buffer name.
  322.  
  323. ========================================================================
  324. ==            NOTES                          ==
  325. ========================================================================
  326. In this document, you will see command names surrounded by parens (eg
  327.   (beginning-of-line)).  If the command is bound, you can execute the
  328.   command by pressing the keys it is bound to.  For example,
  329.   (beginning-of-line) is bound to C-a, so holding down the control key
  330.   and pressing A will move the cursor the the beginning of the line.  If
  331.   the command is not bound (or you don't remember or want to use the
  332.   binding), you can also execute the command by using (ME-command).
  333.  
  334. ========================================================================
  335. ==            COMMANDS                      ==
  336. ========================================================================
  337. COMMAND    name, default binding, args and comments
  338.   These all return a BOOLEAN.
  339. Note:  Some of commands listed are actually written in Mutt and thus are
  340.   NOT built in - they must be loaded.  These are marked with a "*" at
  341.   the begining of the line.  The Mutt file that they are defined in is
  342.   listed after the command.  If you use the standard distrubution of
  343.   ME2, these should just work.
  344.  
  345. (abort)        C-g
  346.   Back out of anything.
  347.   If remembering a macro, forget it.
  348.   If executing a program, stop it.
  349.   This only works when ME is waiting for a key press (ie it won't halt
  350.     pgms in a infinite loop or runaway pgms that aren't looking at the
  351.     keyboard).
  352. (apropos)    M-?    args: keyword
  353.   List all commands and programs that have a keyword in them.  For example,
  354.     if you apropos commands with "mark" in them you might get something like:
  355.     PROGRAMS:
  356.     mark-and-end               F-B
  357.     mark-and-home              F-A
  358.     COMMANDS:
  359.     exchange-dot-and-mark      C-xC-x 
  360.     set-mark                   C-@ M-  F-N
  361.     On the left is the command name.  On the right are the key(s) bound
  362.       to the command.  So, in this case, (set-the-mark) is bound to
  363.       control-@, meta-space and softkey-N.
  364.   Command completion is on.
  365.   See also: (describe-bindings).
  366.  
  367. (beginning-of-buffer)    M-<
  368.   Move the dot to the first character of the buffer.
  369.   See also: (end-of-buffer).
  370. (beginning-of-line)    C-a
  371.   Move the dot to the first character of the line.
  372.   See also: (end-of-line).
  373. (bind-local-key)    Not bound.    args: command name, keystroke(s)
  374.   Same as (bind-to-key) but the binding is in effect only in the buffer it
  375.     was bound in.
  376.   Note that local bindings take precedence over global ones.
  377.   See: (bind-to-key)
  378. (bind-to-key)        Not bound.    args: command name, keystroke(s)
  379.   Attach a key to a command or  program.  When ever the key is  pressed,
  380.     the command or program will be executed  (except  when a question is
  381.     being asked).
  382.   Possible keys are single key strokes and combo keystrokes.
  383.     Combo keys are prefixed keys, softkeys or modified keys.
  384.   When asked for the key just press the key(s).  You might have to use
  385.     C-q to quote the keys, in that case it often easier to just type
  386.     "C-a" if you mean control a.
  387.   If  programming,  use the keycode.  Keycodes  are ASCII (ie no control
  388.     characters and such)  representations of a key.  For example, META-D
  389.     is represented by the 3 characters  M-d,  control-C by ^C or C-c and
  390.     function  key 1 (aka  soft key 1) by F-1.  Keycodes  should  be used
  391.     when programming to avoid screwing up things like printers (when you
  392.     print out the file).  eg (bind-to-key "foo" "F-1").
  393.   To unbind a key, bind it to "".  (bind-to-key "" "F-1") will remove
  394.     anything bound to F-1 and make F-1 self insert.
  395.   To unbind all keys, use (bind-to-key "clear-keymap") (note that you
  396.     don't need a keystroke arg).  Be careful how you use this because
  397.     you can make it impossible to exit ME.  "Regular" (noncontrol, etc)
  398.     keys become self inserting after clearing the keymap.  ie "a" will
  399.     insert an "a".
  400.   Note: Always use uppercase for control keys if you use the ^ notation.
  401.   Command completion is on.
  402.   See also: (bind-local-key), (defun), keys (in the glossary above).
  403.  
  404. *(calculator)        Not Bound    calc.mut
  405.   A simple programmers calculator for those times when you don't want to
  406.     use the one sitting next to the keyboard.  Supports arithmetic in
  407.     many different bases.  For more info, run calculator and press "?".
  408. *(capitalize-word)    M-c        case.mut
  409.   Capitalize word after dot.
  410.   If dot is between words, searches forward to the start of the next word
  411.     and capitalizes that one.
  412.   If the dot is in the middle of a word, the letter after the dot is
  413.     capitalized.
  414.   See also: (modify-syntax-entry), (upcase-region), (downcase-region),
  415.     (capitalize-region).
  416. *(capitalize-region)    Not Bound    case.mut
  417.   Capitalize all words in a region.
  418.   If dot is between words, searches forward to the start of the next word
  419.     and capitalizes that one.
  420.   If the dot is in the middle of a word, the letter after the dot is
  421.     capitalized.
  422.   See also: (modify-syntax-entry), (upcase-region), (downcase-region),
  423.     (capitalize-word).
  424. *(clear-rectangle)    Not Bound        me2.mut
  425.   Set the rectangle to blanks.
  426.   See also:  (copy-rectangle), (cut-rectangle), (delete-rectangle).
  427. *(compile)        Not bound    compile.mut
  428.   Run make (or a command of your choice (such as cc)), collect output in
  429.     a buffer and while the compile is running, optionally visit the
  430.     files that have errors.
  431.   See documentation in PACKAGE.DOC under "compile".
  432.   Notes:
  433.     Only works on machines running unix and the compute server.
  434.     Modeled after compile in GNU Emacs.
  435. (copy-region)        M-w
  436.   Copy a region to the cut buffer.  If the last command was a cut
  437.     command, append to the cut buffer.  The region is unaffected.
  438.   Returns TRUE if region copied, FALSE if no region, ABORT if the cut
  439.     buffer runs out of space.
  440.   See also: (cut-region), (yank).
  441. *(copy-rectangle)    Not Bound        me2.mut
  442.   Copy a rectangle to the cut buffer.
  443.   See also:  (cut-rectangle), (delete-rectangle), (clear-rectangle).
  444. *(cut-the-line)            F-5        me2.mut
  445.   Delete the entire line the cursor is on.
  446. (cut-line)        C-k or F-K (clear line)
  447.   Delete text from dot to the end of the line.
  448.     If an argument is given:
  449.     If n = 0: cut from beginning of line to dot.
  450.     If n > 0: cut forward over n newlines.
  451.     If n < 0: error.
  452.   The deleted text is put into the cut buffer or appended to the cut
  453.     buffer if the last command was also a cut command.
  454.   Other Emacs' call this kill-line.
  455.   See also: (cut-word), (cut-previous-word), (cut-region),
  456.     (yank).
  457. (cut-previous-word)        M-C-h (M-backspace)
  458.   Delete the previous word.  Save them in the cut buffer.
  459.   See also: (modify-syntax-entry).  
  460. *(cut-rectangle)    Not Bound        me2.mut
  461.   Copy a rectangle and delete a rectangle to the cut buffer.
  462.   In GNU Emacs, this is called kill-rectangle.
  463.   See also:  (copy-rectangle), (delete-rectangle), (clear-rectangle).
  464. (cut-region)        C-w
  465.   Delete a region and save it in the cut buffer.  If the last command was
  466.     a cut command, append to the cut buffer.
  467.   See also: (copy-region), (delete-region), (cut-line),
  468.     (yank).
  469.   Other Emacs' call this kill-region.
  470. (cut-word)            M-d or M-C-? (M-DEL)
  471.   Delete a word.  Save them in the cut buffer.
  472.   See also: (modify-syntax-entry).  
  473.  
  474. *(delete-buffer)    C-xk    delbuf.mut
  475.   Remove a buffer.  It disappears into ness-ness land.  If the buffer
  476.     has been modified, ask before deleting.  If the buffer is on the
  477.     screen, replace it with the (next-buffer).  If it is the only
  478.     buffer, replace it with "*scratch*".  If n, remove the window it was
  479.     displayed in.
  480.   Defaults to the current buffer.
  481.   Buffer name completion is on.
  482.   See also: (delete-current-windows).
  483. (delete-character)        C-d, C-? (DEL) or F-H (delete)
  484.   Delete the character after the dot (visually under the cursor).  If at
  485.     the end of the line, the next line is joined to the current line.  If
  486.     given an argument, deleted characters are put into the cut buffer.
  487.   If a Mutt program calls this, deleted characters are never put into
  488.     the cut buffer.
  489. *(delete-current-window)    C-x0        me2.mut
  490.   Delete the current window.
  491. (delete-other-windows)        C-x1
  492.   Make the current window the only window on the screen.
  493.   See also: (split-window).
  494. (delete-previous-character)    C-h (backspace)
  495.   Delete the character before the dot (visually to the left of the
  496.     cursor).  If at the beginning of the line, the current line is
  497.     joined to the end of the previous line.  If given an argument,
  498.     deleted characters are put into the cut buffer.
  499.   If a Mutt program calls this, deleted characters are never put into
  500.     the cut buffer.
  501. *(delete-rectangle)    Not Bound        me2.mut
  502.   Delete the rectangle.
  503.   See also:  (copy-rectangle), (cut-rectangle), (clear-rectangle).
  504. (delete-region)        Not bound
  505.   Delete a region.  The region is NOT saved.
  506.   See also: (cut-region).
  507. (describe-bindings)    Not bound
  508.   List all commands and programs along with their key bindings in the same
  509.     format as (apropos).
  510.   See also: (apropos).
  511. *(describe-key)        Not Bound    me2.mut
  512.   Tells you what a key is bound to.
  513. *(downcase-region)    C-xC-l        case.mut
  514.   Convert a region to lower case.
  515.   See also: (upcase-region), (downcase-word), (upcase-word).
  516. *(downcase-word)    M-l        case.mut
  517.   Convert word to lower case.
  518.   See (capitalize-word) for edge conditions.
  519.   See also:  (modify-syntax-entry), (upcase-word), (downcase-region),
  520.     (upcase-region).
  521.  
  522. (end-macro)        C-x)
  523.   Stop remembering keystrokes.  The keystrokes are stored in the macro
  524.     buffer ready to be replayed by (execute-macro).
  525.   See also: (execute-macro), (start-macro).
  526. (end-of-buffer)        M->
  527.   Move the dot to the bottom of the buffer.
  528.   See also: (beginning-of-buffer).
  529. (end-of-line)        C-e
  530.   Move the dot to the end of the line.
  531.   See also: (beginning-of-line).
  532. (exchange-dot-and-mark)    C-xC-x
  533.   Move the dot to the mark and set the mark to old dot value.  Visually,
  534.     move to where the mark was set.  Repeating this command will undo it.
  535.   See also: (set-the-mark).
  536. (execute-macro)        C-xe
  537.   Replay the keystrokes saved in the macro buffer.
  538.   See also: (start-macro), (end-macro).
  539. (exit)            C-c  C-xC-c    args: [yes or no]
  540.   Exit ME.  If there is a modified buffer (one that has changed since it
  541.     was last saved), you are asked about it.
  542.   If n, quit no matter what and without making any noise.
  543.  
  544. *(fill-paste-buffer)    Not bound    me2.mut
  545.   Put the region into the paste buffer.  This acts just like
  546.     (copy-region) but uses the paste buffer instead of the cut buffer.
  547.   Use (yank-paste-buffer) to insert buffer.
  548.   See also:  (yank-paste-buffer).
  549. *(filter)        Not bound    filter.mut
  550.   Take a region and feed it to a filter as standard input.
  551.   Take the output of the filter and use it to replace the region.
  552.   For example:  If the region is a list of words and sort is a program
  553.     that sorts text then (filter "sort") will replace the region with
  554.     a sorted copy.
  555.   If you don't want to remove anything, use universal argument (C-u) or
  556.     make a null region (set the mark at the dot).  eg C-u (filter "ls")
  557.     will insert a directory listing at the dot.
  558.   The region is saved in the cut buffer.
  559.   See OS-filter (in ME2MUTT.DOC) for info on environment variables.
  560. *(findit)        Not bound    findit.mut
  561.   Search or search and replace across many files.
  562.   See documentation in PACKAGE.DOC under "findit".
  563.   See also: grep.
  564. *(forward-re-search)    M-C-s        search.mut
  565.   Same as (forward-search) but using regular expressions.
  566.   See REGEXP.DOC for regular expression syntax.
  567.   See also: (query-replace), (forward-search), (reverse-re-search).
  568.    in ME2MUTT.DOC: case-fold-search, get-matched, looking-at
  569. *(forward-search)    Not Bound    search.mut
  570.   Search for a string.
  571.   CR ends patterns, LF (^J) => end of line.
  572.   The pattern is saved across searches.
  573.   (forward-search) The dot is after the last character matched.
  574.   (reverse-search) The dot is before the last character matched, or put
  575.     another way, to the left of the first character of the search string.
  576.   Examples:
  577.     To search for "foobar", type: foobar<Enter>
  578.     To search for "foobar"<end of line>, type: foobar^Q^J<Enter>
  579.     To search for <start of line>"foobar", type: ^Q^Jfoobar<Enter>
  580.       Note that, in this case, the very first line will not match (this
  581.       is because the first line has no preceeding line and therefore no
  582.       end of line marker before it).
  583.   See also:  (reverse-search), (forward-re-search), (isearch),
  584.     (query-replace), (re-query-replace), case-fold-search (in ME2MUTT.DOC)
  585.     
  586. *(get-sysvar)        Not Bound    sysvar.mut
  587.   Display the value of a ME2 system variable.
  588.   See ME2MUTT.DOC for a list and what they do.
  589.   Command completion is on.
  590.   See also:  (set-sysvar).
  591. *(Goto-line)        M-g        me2.mut
  592.   Move the dot to the beginning of the nth line in the current buffer.
  593.     First line of the buffer is 1.  If n is negative, got the nth line
  594.     from the end of the buffer.
  595.   Returns FALSE is try to move off either end of the buffer.  In that
  596.     case the dot is left at the buffer edge it tried to move accross (at
  597.     the start of the line).
  598.   Notes:
  599.     Line 0 does not really exist so (goto-line 0) returns FALSE.  If you
  600.     ignore the error, (goto-line 0) is the same as (goto-line 1).
  601.   See also:  goto-line (in ME2MUTT.DOC).
  602. *(grep)            Not bound    compile.mut
  603.   Run grep, collect output in a buffer and while the grep is running,
  604.     visit all the files grep finds matches in.
  605.   See documentation in PACKAGE.DOC under "compile".
  606.   Notes:
  607.     Only works on machines running unix and the compute server.
  608.     Modeled after grep in GNU Emacs.
  609.   See also: findit.
  610. *(grow-window)        C-x^        window.mut
  611.   Enlarge the current window by a line.
  612.   See also: (shrink-window).
  613.  
  614. *(hanoi)        Not Bound    ganoi.mut
  615.   A towers of hanoi solver that shows the disks moving around.
  616.   To load it:  M-x load <Enter> ganoi <Enter>
  617.   See also: (Queens).
  618.  
  619. *(indent-rigidly)    C-xC-i    indent.mut
  620.    Shift a block left or right.
  621.    A block is all the lines of text between the dot and mark inclusive.
  622.    With no arg: asks for the amount to shift the region.  Positive
  623.      for right shift, negative for left shift.
  624.    With arg (ie C-u):  shifts the region by the difference between the dot
  625.      and the first nonblank character on that line.
  626.      eg use this to shift the top line of the region over to the cursor.
  627.    Removes white space from blank lines.
  628.    When doing a negative shift, text won't be shifted left of the left
  629.      margin.
  630.  
  631. (insert-file)        C-xi    args: file name
  632.   Insert a file into the buffer at the dot.  The file is unaffected.
  633.   Command completion is on.
  634.   See also: (read-file), (visit-file), (write-file).
  635. *(insert-file-name)    Not bound    me2.mut
  636.   Use command completion to get a file name and insert the name at the
  637.     dot.
  638. *(isearch-forward)    C-s or C-\        isearch.mut
  639.   Search as you type - shows you where the string you have typed so far
  640.     would be found.
  641.   Keys:
  642.     C-h (Backspace):  Remove the last character from the search pattern.
  643.        Don't move.
  644.     C-s:  Search forward for existing pattern.  If haven't entered a
  645.        pattern, the old pattern is used.
  646.     C-\:  Same as C-s.
  647.     C-r:  Search reverse for pattern.
  648.     C-q:  Quote the next character into the search pattern.  Useful for
  649.        searching for control characters (like tab).
  650.     C-w:  Add the rest of the word to the search pattern.
  651.     C-g:  Exit search.
  652.     C-m (Enter): Drop to non incremental search if haven't done anything
  653.      yet.
  654.   Control characters and combo keys (eg cursor motion, C-x=, etc)
  655.     terminate the search.  The key is then executed.  For example,
  656.     searching for text and then pressing C-p will cause the cursor to
  657.     move to the line above the matched text.
  658.  
  659.   If you want to call isearch from a Mutt program, prime and start
  660.     searching, just pass in a search string.  eg (isearch TRUE "foobar")
  661.     will start a incremental search at the point and search for foobar.
  662.     Use FALSE to search backwards.
  663.  
  664.   See also:  (isearch-reverse), (forward-search).
  665. *(isearch-reverse)    C-r        isearch.mut
  666.   See (isearch-forward) for info.
  667.  
  668. *(list-buffers)        C-xC-b        bstats.mut
  669.   List all the buffers currently in ME along with some info about them.
  670.   For example:
  671.     Flags  Size Buffer           File
  672.     -----  ---- ------           ----
  673.     .---     81 *Help*
  674.     -u--   2732 bstats.mut     /users/craig/tools/me2/mutt/bstats.mut
  675.     Mu--  37434 me2.doc         /users/craig/tools/me2/doc/me2.doc
  676.  
  677.    40527 bytes (943 lines) in 3 buffers.  
  678.  
  679.   Here is what the flags (MuhH) mean:
  680.     M : M if the buffer has been modified and we care.
  681.     u : u if undo is turned on.
  682.     H : if the buffer is "hard" hidden.
  683.     h : if the buffer is "soft" hidden.
  684.     If any of the flags is off, a "-" is used in place of the letter
  685.       (except for modified where a "." is used).
  686.   See also: (show-buffer-stats)
  687. (load)        Not bound    args: code-file-name
  688.   Load a Mutt executable code file compiled with the Mutt compiler (MC2).
  689.   The file "me2.mco" is loaded when ME2 is fired up (unless it does not
  690.     exist).
  691.   Where the file is looked for is controled by the environment variable
  692.     "ME2".  If it doesn't exist, the current directory is searched.  If
  693.     it does exist, it is parsed just like the UNIX ksh PATH variable:  
  694.       If code-file-name has a slash in it, the ME2 path is not searched.
  695.       Everything between sepraters (":" on UNIX, ";" on MS-DOS) is a path.
  696.       If path starts with ":", the current directory is searched first.
  697.       If path ends with ":", the current directory is searched last.
  698.       MS-DOS only:
  699.         "/" and "\" are treated the same way - as "\".
  700.     If code-file-name starts with a drive (eg "A:"), the ME2 path is
  701.       not searched.
  702.     For example:  ME2=$HOME/mutt:.:/usr/local/lib/mutt
  703.       When (load "foo") is done, ME will try to load
  704.       "$HOME/mutt/foo.mco", "./foo.mco" and
  705.       "/usr/local/lib/mutt/foo.mco" in succession.
  706.   Notes:
  707.     The extension MUST be ".mco" and is optional (ie you don't have to
  708.       include it and if you do, I'll change it to ".mco").
  709.     With an arg prefix (ie C-u) there is no error message if the file
  710.       can't be found.
  711.     If the arg prefix is 42, I check to see if the file has already been
  712.       loaded - if it has been, I won't load it again.
  713.   Warnings:
  714.     A pgm should NOT try to load it self or the file it is defined in
  715.       (eg if foo is defined in bar.mut, foo should not try to (load
  716.       "bar").  This is because the old bar is discarded (to make room
  717.       for the new code) before foo finishes running (ie foo is thrown
  718.       away).  Depending on the OS, this may work but your asking for
  719.       trouble if you do it.
  720.     If a code file is loaded that has the same name (ignoring path) as
  721.       an already loaded code file, it overwrites the old file.  All keys
  722.       bound to functions in the old file are removed.  See autoload.mut
  723.       for more about load and late binding.
  724.   See also: documents on Mutt programming (MUTT2.DOC and ME2MUTT.DOC).
  725.  
  726. (ME-command)    M-x    args: command or program name
  727.   Run a command or program.  ie one of the things listed in this
  728.     document.  When asked what to Execute:  use the name as listed here
  729.     (without the "()"'s).  eg Execute:  describe-bindings
  730.   Command completion is in effect.
  731.  
  732. (newline)        C-m
  733.   Insert a newline before the dot (visually before the cursor).
  734.   See also: (newline-and-indent), (open-line).
  735. (newline-and-indent)    C-j or M-C-o (oh, not zero)
  736.   Insert a newline before the dot and duplicate the indentation of the
  737.     previous line (the one the dot just left).
  738.   Note:  if tab-stops is 0, tabs are used where possible.  Otherwise
  739.     only blanks are used.
  740.   See also: (newline), (open-line), tab-stops (ME2MUTT.DOC).
  741. *(next-buffer)        F-2        hidebuf.mut
  742.   Replace the current buffer with the next buffer in the buffer list,
  743.     skipping the hidden buffers.  The buffer list is in alphabetical
  744.     order.  The buffer list is circular, ie, the last buffer is followed
  745.     by the first buffer.
  746.   See also:  (list-buffers), (switch-to-buffer), (use-existing-buffer).
  747. (next-character)    C-f or F-E (right arrow)
  748.   Move right a character.
  749.   See also: (previous-character).
  750. *(next-file)        C-xf        nextfile.mut
  751.   Read the next file on the command line.  By default, ME only reads the
  752.     first file on the command line.  This command will read the next
  753.     one.  Note that wildcards must be expanded by the shell (MS-DOS
  754.     users take note).
  755.   Use C-u to read in lots of files at once.
  756. (next-line)        C-n or F-D (down arrow)
  757.   Move the dot vertically down the screen.  Trys to stay in the same
  758.     column.
  759.   Note:
  760.     Don't use this in a pgm unless you want column tracking (for example
  761.       binding an arrow key).  In most cases the column tracking gets in
  762.       the way and will confuse your pgm.  Use forward-line instead.
  763.       (see ME2MUTT.DOC).
  764.   See also: (forward-line), (previous-line).
  765. (next-page)        C-v or F-J (page down)
  766.   Scroll forwards a page (window size -2).
  767.   See also: (previous-page).
  768. (next-window)        C-xo (oh, as in other)
  769.   Move to the next window down the screen and make it the current window.
  770.   See also: (previous-window)
  771. (next-word)        M-f
  772.   Move forwards until dot is after the end of a word or end of buffer.
  773.   See also: glossary, (previous-word), (cut-previous-word),
  774.     (cut-word), (modify-syntax-entry).
  775. *(not-modified)        Not bound    me2.mut
  776.   Reset the modified bit on the current buffer.
  777.  
  778. (open-line)        C-o (oh, not zero)
  779.   Insert a newline after the dot.  The dot does not move.
  780.   See also: (newline), (newline-and-indent).
  781.  
  782. *(p-match)        F-6    pmatch.mut
  783.   Paren matcher.  Works on (){}.
  784.   Put the cursor at a paren, execute p-match.  The cursor is moved to
  785.     the matching paren, sits there for a while so you can see the
  786.     matching paren and then curor is restored.  The mark is left at the
  787.     matching paren so you can (exchange-dot-and-mark) at your convience.
  788. (previous-character)    C-b or F-F (left arrow)
  789.   Move the dot backwards by a character.
  790.   See also: (next-character).
  791. (previous-line)        C-p or F-C (up arrow)
  792.   Move the dot vertically up the screen.  Tries to stay in the same
  793.     column.
  794.   Note:
  795.     Don't use this in a pgm unless you want column tracking (for example
  796.       binding an arrow key).  In most cases the column tracking gets in
  797.       the way and will confuse your pgm.  Use forward-line instead.
  798.       (see ME2MUTT.DOC).
  799.   See also: (forward-line), (next-line).
  800. (previous-page)        M-v or F-I (page up)
  801.   Scroll backwards a page (window size -2).
  802.   See also: (next-page).
  803. (previous-window)    C-xp
  804.   Move to the window immediately above the current window and make it the
  805.   current window.
  806.   See also: (next-window).
  807. (previous-word)        M-b
  808.   Move backwards until dot is at the beginning of a word or beginning of
  809.     buffer.
  810.   See also: (cut-previous-word), (cut-word), (next-word),
  811.     (modify-syntax-entry).
  812.  
  813. *(Queens)        Not Bound    queen.mut
  814.   A "how do you place N queens on a NxN chess board so they don't attack
  815.     each other?"  solver that shows the queens moving around.
  816.   To load it:  M-x load <Enter> queen <Enter>
  817.   See also: (hanoi).
  818.  
  819. *(query-replace)    M-% or M-q    qr.mut
  820.   Interactively search and replace strings.
  821.   If the replacements are successful, the cursor is left where the
  822.     replace started and the mark is after the last replacement.
  823.   If aborted, the cursor is left where the abort occurred and the mark is
  824.     where the replace started.
  825.   n : No, don't replace.  Go on to next match.
  826.   <SPACE>, y : Yes, replace and go to next match.
  827.   ! : Replace all the rest without asking.
  828.   C-g : Abort.  The command stops and the cursor is left where it is.  To
  829.       get to the start of the query-replace, use (exchange-dot-and-mark).
  830.   ? : Popup a window with some documentation in it.
  831.   C-l : Redraw the screen and put the cursor in a "reasonable" place.
  832.   A few others.  Use "?".
  833.  
  834.   If you hit a character not in the list, the query-replace stops.
  835.   Patterns are saved across searches.
  836.   If you want to call this from a Mutt program, the optional args are:
  837.     (query-replace search-pattern replace-pattern)
  838.     Note that the query-replace remains interactive.
  839.   See also:  (re-query-replace), search-replace (ME2MUTT.DOC),
  840.     case-fold-search (in ME2MUTT.DOC).
  841. (quote)            C-q or C-^ (control-^)
  842.   Insert the next character typed into the buffer.  This is how to get
  843.     control characters and the like into the buffer.
  844.   Note: If you quote ALT keys or softkeys it will be pretty boring.
  845.  
  846. *(re-query-replace)    M-C-q        qr.mut
  847.   Same as (query-replace) but using regular expressions.
  848.   See REGEXP.DOC for regular expression syntax.
  849.   See also: (query-replace), case-fold-search (in ME2MUTT.DOC)
  850. (read-file)        C-xC-r    args: file name, [yes or no]
  851.   Clear the current buffer (asking if the buffer has been modified) and read
  852.     in a file.
  853.   The file name defaults to the file name of the current buffer.
  854.   Command completion is on.
  855.   See also: (insert-file), (visit-file), (write-file) and read-file-hook
  856.     (in ME2MUTT.DOC).
  857. (refresh-screen)    C-l
  858.   Repaint the screen.  If n, then center the dot vertically in the window.
  859.   See also: (reposition-window).
  860. *(rename-buffer)    Not bound    me2.mut
  861.   Change the name of the file that is attached to the current buffer.
  862.   After you do this, saving the buffer will cause it to write to the new
  863.     file name.
  864.   If you want to detach the buffer from the file system, use "" as the
  865.     new file name.
  866. (reposition-window)    M-!
  867.   Move the current window so that the line the dot is on is n lines
  868.     from the top of the window.  The default is to move the line the dot
  869.     is on to the top of the window.
  870.   If n <  0, move the dot so that it is n lines from the bottom.
  871.   If n == 0, the dot is centered vertically centered in the window.
  872.   See also: (refresh-screen).
  873. *(reverse-re-search)    Not Bound    search.mut
  874.   Same as (reverse-search) but using regular expressions.
  875.   See REGEXP.DOC for regular expression syntax.
  876.   See also: (reverse-search), (forward-re-search).
  877. *(reverse-search)    Not Bound    search.mut
  878.   See (forward-search) for info.
  879.  
  880. (save-buffer)        C-xC-s
  881.   Write the current buffer to the file associated with it.  Does not
  882.     do anything if the buffer is unmodified.  If you want to force a write,
  883.     use (write-file).
  884.   See also:  (write-file).
  885. (scroll-down)        C-xC-n or F-O (oh) (roll up)
  886.   Move the current window down by a line.  Visually, the dot moves up the
  887.     screen.
  888. (scroll-up)        C-xC-p or F-P (roll down)
  889.   Move the current window up by a line.  Visually, the dot moves down the
  890.     screen.
  891. (set-the-mark)        C-@ or M-SPACE or F-N (select)
  892.   Set the mark at the dot.  Visually, under the cursor.
  893.   See also: (exchange-dot-and-mark).
  894. *(set-sysvar)        Not Bound    sysvar.mut
  895.   Set a ME2 system variable.
  896.   See ME2MUTT.DOC for a list and what they do.
  897.   Command completion is on.
  898.   See also:  (get-sysvar).
  899. (shell-command)        C-x!    args: op sys command
  900.   Call the operating system to perform a command or run a program and then
  901.     return to editing.
  902.   MS-DOS example:  To copy a file: (shell-command "copy foo bar")
  903.     To get a directory listing: (shell-command "ls").
  904.   See also:  (filter), (spawn-shell), enter-ME-hook and leave-ME-hook
  905.     (in ME2MUTT.DOC).
  906. *(shell-region)        Not bound    me2.mut
  907.   Use the region as input to (shell-command).
  908.   For example:
  909.     foo.c has a comment in it that shows how to compile:
  910.     /* cc -o foo foo.c -lX11 */
  911.     By setting dot and mark around the text and using shell-region, you
  912.     can compile foo.
  913.   See also:  (shell-command).
  914. *(show-buffer-stats)    C-x=        bstats.mut
  915.   Display some info about the current buffer.
  916. *(shrink-window)    C-xC-z        window.mut
  917.   Shrink the current window by a line.  With an arg, shrink by that many
  918.     lines.
  919.   See also: (grow-window), window-height (ME2MUTT.DOC).
  920. (spawn-shell)        C-z
  921.   Jump to the operating system shell for a while.  ME is still loaded
  922.     and will sit in the background until you exit the shell (via "exit"
  923.     in MS-DOS).
  924.   In UNIX and MS-DOS, you can specify your shell with the SHELL
  925.     environment variable (eg set SHELL=MUSH.EXE).
  926.   On UNIX systems that support job control, C-uC-z will suspend ME.  This
  927.     is (usually) much faster than forking a new shell (use the fg
  928.     command (or equivalent) to return to ME).  A major drawback of this
  929.     is trying to use it from a shell that does not support job control
  930.     (such as sh) or from a program (such as mail) that fired off ME via
  931.     the C system() command (it uses sh).  In these cases the shell hangs
  932.     and it is difficult to recover.
  933.   See also:  (shell-command), (filter), enter-ME-hook and leave-ME-hook
  934.     (in ME2MUTT.DOC).
  935. (split-window)        C-x2
  936.   Make 2 windows out of the  current  window.  A window with less than 3
  937.     lines cannot be split.
  938.   See also: (delete-other-windows).
  939. (start-macro)        C-x(
  940.   Start remembering keystrokes until (end-macro).
  941.   (abort) will terminate and back out of the macro.
  942.   See also: (end-macro), (execute-macro).
  943. (switch-to-buffer)    C-xb    args: buffer name
  944.   Replace the current window with another buffer.
  945.   Buffer name completion is on.
  946.   See also: (list-buffers), (next-buffer), (use-existing-buffer).
  947.  
  948. (tab)            C-i or the tab key
  949.   Insert tab(s).
  950.   Move to the next tab stop.  With argument, move n tabs.
  951.   To set the tab stops, see tab-stops in ME2MUTT.DOC.
  952. *(turn-on-undo)        Not Bound    undo.mut
  953.   Turn on undo for a buffer.  This has usually already been done.
  954.   See also: (undo)
  955. *(twiddle-about-dot)    Not Bound    twiddle.mut
  956.   Transpose the two characters on either side of the dot (cursor).
  957. *(twiddle-left-of-dot)    C-t        twiddle.mut
  958.   Transpose the two characters left of the dot (cursor).
  959.  
  960. *(undo)            C-xu or C-_    undo.mut
  961.   Undo the last change to the buffer.  May not be turned on for some
  962.     buffers.
  963.   Undo won't undo the following things:
  964.     cursor movement, buffer clears, file reads.
  965.   See also:  (turn-on-undo), Undo.article.
  966. (universal-argument)    C-u
  967.   Get a numeric count for the next command.  The next command or program
  968.     is performed count times.  If the command is a self-insert, count
  969.     copies of the character are inserted.
  970.   Count starts at 4 (except as noted below).  If the first key pressed
  971.     after C-u is "-", count becomes negative.  Pressing C-u multiplies
  972.     count by 4.  If a non digit is pressed, whatever is bound to that
  973.     key is performed count times.  Otherwise, count becomes the next
  974.     digits pressed.
  975.   For example, C-uC-f will move forward 4 characters, C-uC-uC-f 16
  976.     characters, C-u123 123 characters.  C-u5@ will insert "@@@@@".
  977.   If (universal-argument) is given an argument, the count starts there.
  978.     For example, in some Emacses, META digit starts the count at digit.
  979.     See arg-prefix in ME2MUTT.DOC for how to implement this.
  980.   (universal-argument) ignores running programs and will read from the
  981.     keyboard.  Use arg-prefix if you wish pass an argument to something.
  982.   See also: arg-prefix (in ME2MUTT.DOC).
  983. *(upcase-region)    C-xC-u        case.mut
  984.   Convert a region to upper case.
  985.   See also: (downcase-region), (downcase-word), (upcase-word).
  986. *(upcase-word)        M-u        case.mut
  987.   Convert word to upper case.
  988.   See (capitalize-word) for edge conditions.
  989.   See also:  (modify-syntax-entry), (downcase-word), (downcase-region),
  990.     (upcase-region).
  991. *(use-existing-buffer)    C-xC-o (oh)    me2.mut
  992.   Replace the current window with a buffer that already exists.
  993.   Buffer name completion is on.
  994.   See also: (list-buffers), (switch-to-buffer).
  995.  
  996. (version)        Not bound
  997.   Show the version of ME2.
  998. (visit-file)        C-xC-f or C-xC-v  args: file name
  999.   Pull a file into a buffer for editing.  The current window is used to
  1000.     hold new buffer.  If arg-prefix, the window is split (if it is the
  1001.     only one) or another window is used to hold the new buffer.  If the
  1002.     file has been already loaded, switch to it.  Otherwise, read in the
  1003.     file.  A buffer name is created from the file name by stripping off
  1004.     the directory info and keeping the name and extension.  The dot is
  1005.     set to the beginning of the buffer and the marks are cleared (if
  1006.     this is a new buffer).
  1007.   If the buffer already exists but the filenames are different (eg "foo"
  1008.     and "../foo" both generate the buffer name "foo"), a unique buffer
  1009.     name is constructed by appending "<2>", "<3>", etc, using the lowest
  1010.     number that makes a name not already in use.
  1011.   Command completion is on.
  1012.   See also:  (insert-file), (read-file), (write-file) and read-file-hook
  1013.     (in ME2MUTT.DOC).
  1014.  
  1015. (write-file)        C-xC-w    args: file-name
  1016.   Write the current buffer to a file.  If the file exists, it is
  1017.     overwritten.  If the file does not already exist, it is created.
  1018.   file-name defaults to the file name of the current buffer.
  1019.   Note that the buffer name and file name do NOT change.  Some Emacses
  1020.     change the file name to file-name.  If you like this behavior, try:
  1021.     (defun write-named-file
  1022.     {(rename-buffer (ask "Write named file: "))(write-file "")})
  1023.   Command completion is on.
  1024.   See also: (insert-file), (read-file), (save-buffer), (visit-file).
  1025.  
  1026. (yank)            C-y
  1027.   Insert the contents of the cutbuffer before the dot (visually before the
  1028.     cursor).  Does not affect the cut buffer.
  1029.   The dot is left after the yanked text.  The mark does not move.
  1030.   See also: (copy-region), (cut-line), (cut-region).
  1031. *(yank-paste-buffer)    Not bound    me2.mut
  1032.   Insert the contents of the paste buffer at the dot.  This acts just
  1033.     like (yank) but uses the paste buffer instead of the cut buffer.
  1034.   I bind this to M-y.
  1035.   See also:  (fill-paste-buffer).
  1036.